package com.iuie.ns.system.service.setting;

import java.util.List;

import com.iuie.ns.frame.web.dataset.vo.Page;
import com.iuie.ns.system.vo.resource.SysResourceVO;

/**
 * 用户设置模板-service
 * @author liujie
 * @date 2018年3月28日上午8:57:29
 */
public interface ISysUserSettingTemplateService {

	/**
	 * 分页查询所有用户设置模板
	 * @param res 查询条件
	 * @param page 
	 * @return
	 * @date 2017年6月29日 上午8:35:29
	 */
	List<SysResourceVO> findTemplateByPage(SysResourceVO res, Page page);

	/**
	 * 新增用户设置模板
	 * @param one
	 * @date 2018年3月27日上午8:56:00
	 */
	void addOneTemplate(SysResourceVO one);

	/**
	 * 修改用户设置模板
	 * @param one
	 * @param resId 
	 * @date 2018年3月28日上午10:47:11
	 */
	void updateOneTemplate(SysResourceVO one, String resId);

	/**
	 * 根据id删除用户设置模板
	 * @param resId
	 * @date 2018年3月28日下午10:35:02
	 */
	void deleteTemplate(String resId);

	/**
	 * 根据Id查询用户设置模板
	 * @param resId
	 * @return
	 * @date 2018年3月28日下午10:45:27
	 */
	SysResourceVO findById(String resId);

	/**
	 * 查询所有用户设置模板
	 * @return
	 * @date 2018年3月29日上午10:18:14
	 */
	List<SysResourceVO> findAll();

	/**
	 * 根据角色ID查询关联的角色设置模板
	 * @param roleId
	 * @return
	 * @date 2018年3月29日上午10:23:07
	 */
	List<SysResourceVO> findTemplateByRoleId(String roleId);

	/**
	 * 保存用户设置与角色的关系
	 * @param roleId
	 * @param resIdArr
	 * @date 2018年3月30日上午8:48:37
	 */
	void saveUserSettingWithRoleRelation(String roleId, String[] resIdArr);
	
	/**
	 * 根据角色ID删除用户设置与角色的关系
	 * @param roleId
	 * @return
	 * @date 2018年3月30日上午10:15:29
	 */
	Integer deleteUserSettingWithRoleRelation(String roleId);

	/**
	 * 根据角色ID查询关联的用户设置模板
	 * @param roleId
	 * @return
	 * @date 2018年3月31日下午4:11:56
	 */
	String findStringOfUserSettingTemplatesByRoleId(String roleId);
	
	/**
	 * 根据模板ID删除用户设置模板与角色的关联关系
	 * @param resId
	 * @return
	 * @date 2018年3月31日下午5:49:31
	 */
	Integer deleteUserSettingWithRoleRelationByResId(String resId);
	
	/**
	 * 根据settingKey查询单条记录
	 * @param settingKey
	 * @return
	 * @date 2018年4月1日上午11:08:13
	 */
	SysResourceVO findOneBySettingKey(String settingKey);
}
